<html>
    <head>
    <meta charset="utf-8">
        <style>
            html, body
            {
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
                border: 0;
                background-color: rgb(220,220,220);
            }
            
            div
            {
                margin: 0;
                padding: 0;
                border: 0;
            }
            .nav
            {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 27px;
                background-color: rgb(42, 176, 238);
                color: black;
                text-align: center;
                line-height: 25px;
            }
            a
            {
                color: black;
                text-decoration: none;
                border-bottom: 1px dashed black;
            }
            a:hover
            {
                border-bottom: 1px solid red;
            }
            .previous
            {
                float: left;
                margin-left: 10px;
            }
            .next
            {
                float: right;
                margin-right: 10px;
            }
            .green
            {
                color: rgb(23, 134, 23);
            }
            .red
            {
                color: red;
            }
            textarea
            {
                width: 100%;
                height: 100%;
                border: 0;                
                padding: 0;                
                margin: 0;                
                padding-bottom: 20px;              
            }            
            .block-outer            
            {                
                float: left;                
                width: 22%;                
                height: 100%;                
                padding: 5px;                
                border-left: 1px solid black;                
                margin: 30px 3px 3px 3px;                
            }            
            .block-inner            
            {                
                height: 68%;                
            }            
            .one            
            {                
                border: 0;                
            }
        </style>      
    </head>      
<body marginwidth="0" marginheight="0">
    <canvas id="c" height="356" width="446">
    <script>              
        var collapsed = true;            
        function toggle()            
        {                  
            var fs = top.document.getElementsByTagName('frameset')[0];                
            var f = fs.getElementsByTagName('frame');                
            if (collapsed)                
            {                      
                fs.rows = '250px,*';                    
                fs.noResize = false;                    
                f[0].noResize = false;                      
                f[1].noResize = false;
            }                 
            else
            {                      
                fs.rows = '30px,*';
                fs.noResize = true;
                f[0].noResize = true;
                f[1].noResize = true;
            }                  
            collapsed = !collapsed;            
        }
    </script>  
    <script>              
        var b = document.body;            
        var c = document.getElementsByTagName('canvas')[0];            
        var a = c.getContext('2d');            
        document.body.clientWidth;
    </script>  
    <script>
        M=Math;
        Q=M.random;J=[];
        U=16;
        T=M.sin;
        E=M.sqrt;
        for(O=k=0;x=z=j=i=k<200;)
        with(M[k]=k?c.cloneNode(0):c)
        {    
            width=height=k?32:W=446;        
            with(getContext('2d'))        
            if(k>10|!k)        
            for(        
            font='60px Impact',        
            V='rgba(';I=i*U,fillStyle=k?k==13?V+'250,250,250,.15)':        
            V+(147+I)+','+(k%2?128+I:0)+','+I+',.5)':'#E3130E',i<7;        
            )    
            beginPath(        
            fill(            
            arc(                
            U-i/3,                
            24-i/2,                
            k==13?4-(i++)/2:8-i++,                
            0,                
            M.PI*2,1                
            )            
            )            
            );
            else for(;
            x=T(i),        
            y=Q()*2-1,        
            D=x*x+y*y,        
            B=E(D-x/.9-1.5*y+1),        
            R=67*(B+1)*(L=k/9+.8)>>1,        
            i++<W;        
            )
            if(D<1)    
            beginPath(        
            strokeStyle=V+R+','+(R+B*L>>0)+',999,.1)'        
            ),        
            moveTo(U+x*8,U+y*8),        
            lineTo(U+x*U,U+y*U),        
            stroke();
            for(        
            y=H=k+E(k++)*25,        
            R=Q()*W;        
            P=3,j<H;        
            )    
            J[O++]=[x+=T(R)*P+Q()*6-3,y+=Q()*U-8,z+=T(R-11)*P+Q()*6-3,j/H*20+((j+=U)>H&Q()>.8?Q(P=9)*4:0)>>1]
        }
        setInterval(function G(m,l)
        {    
            A=T(D-11);    
            if(l)
            return(        
            m[2]-l[2])*A+(l[0]-m[0])*T(D);        
            a.clearRect(0,0,W,W);        
            J.sort(G);
            for(        
            i=0;        
            L=J[i++];        
            a.drawImage        
            (            
            M[L[3]+1],207+L[0]*A+L[2]*T(D)>>0,L[1]>>1)    )    
            {        
                if(i==2e3)        
                a.fillText        
                (            
                'Merry  Christmas!',            
                U,345);
                if(!(i%7))        
                a.drawImage        
                (
                M[13],
                ((157*(i*i)+T(D*5+i*i)*5)%W)>>0,
                ((113*i+(D*i)/60)%(290+i/99))>>0
                );
            }    
            D+=.02
        },1)
    </script>
</body>
</html>

作者：背着草莓的小刺猬
链接：https://juejin.cn/post/7042189484871385124
来源：稀土掘金
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。